﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace InterfacesInstanceClustering
{
    public interface IClustering
    {
        /// <summary>
        /// The host which manages plugins
        /// </summary>
        IInstanceClusteringHost PluginHost { get; set; }
        /// <summary>
        /// The name of the plugin
        /// </summary>
        string PluginName { get; }
        /// <summary>
        /// The description of the plugin
        /// </summary>
        string PluginDescription { get; }
        /// <summary>
        /// The user control of the plugin
        /// </summary>
        IClusteringUC PluginUserControl { get; }
        /// <summary>
        /// Initialize needed things for the plugin
        /// </summary>
        void Initialize();
        /// <summary>
        /// Dispose the plugin
        /// </summary>
        void PluginDispose();
        /// <summary>
        /// Run the clustering processing
        /// </summary>
        void Cluster();
    }
}
